package cn.classyex.business.hr.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 员工管理对象 hr_employee
 * 
 * @author yex
 * @date 2021-05-05
 */
public class Employee extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 员工id */
    private Long employeeId;

    /** 员工名称 */
    @Excel(name = "员工名称")
    private String employeeName;

    /** 员工性别（0男 1女 2未知） */
    @Excel(name = "员工性别", readConverterExp = "0=男,1=女,2=未知")
    private String sex;

    /** 出生日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "出生日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date birthday;

    /** 身份证号 */
    private String idCard;

    /** 婚姻状况 */
    private String maritalStatus;

    /** 民族 */
    @Excel(name = "民族")
    private String nation;

    /** 籍贯 */
    private String nativePlace;

    /** 政治面貌 */
    private String politicsStatus;

    /** 邮箱 */
    @Excel(name = "邮箱")
    private String email;

    /** 手机号 */
    @Excel(name = "手机号")
    private String phoneNumber;

    /** 头像 */
    private String avatar;

    /** 联系地址 */
    private String address;

    /** 部门id */
    private Long deptId;

    /** 职称 */
    @Excel(name = "职称")
    private String jobLevel;

    /** 职位id */
    private Long postId;

    /** 聘用形式 */
    @Excel(name = "聘用形式")
    private String engageForm;

    /** 最高学历 */
    private String tiptopDegree;

    /** 所属专业 */
    private String specialty;

    /** 毕业院校 */
    private String school;

    /** 入职日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "入职日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date beginDate;

    /** 状态（0离职 1在职） */
    @Excel(name = "状态", readConverterExp = "0=离职,1=在职")
    private String status;

    /** 工号 */
    @Excel(name = "工号")
    private String workCode;

    /** 转正日期 */
    private Date conversionDate;

    /** 离职日期 */
    private Date dimissionDate;

    /** 合同起始日期 */
    private Date contractBeginDate;

    /** 合同终止日期 */
    private Date contractEndDate;

    public void setEmployeeId(Long employeeId) 
    {
        this.employeeId = employeeId;
    }

    public Long getEmployeeId() 
    {
        return employeeId;
    }
    public void setEmployeeName(String employeeName) 
    {
        this.employeeName = employeeName;
    }

    public String getEmployeeName() 
    {
        return employeeName;
    }
    public void setSex(String sex) 
    {
        this.sex = sex;
    }

    public String getSex() 
    {
        return sex;
    }
    public void setBirthday(Date birthday) 
    {
        this.birthday = birthday;
    }

    public Date getBirthday() 
    {
        return birthday;
    }
    public void setIdCard(String idCard) 
    {
        this.idCard = idCard;
    }

    public String getIdCard() 
    {
        return idCard;
    }
    public void setMaritalStatus(String maritalStatus) 
    {
        this.maritalStatus = maritalStatus;
    }

    public String getMaritalStatus() 
    {
        return maritalStatus;
    }
    public void setNation(String nation) 
    {
        this.nation = nation;
    }

    public String getNation() 
    {
        return nation;
    }
    public void setNativePlace(String nativePlace) 
    {
        this.nativePlace = nativePlace;
    }

    public String getNativePlace() 
    {
        return nativePlace;
    }
    public void setPoliticsStatus(String politicsStatus) 
    {
        this.politicsStatus = politicsStatus;
    }

    public String getPoliticsStatus() 
    {
        return politicsStatus;
    }
    public void setEmail(String email) 
    {
        this.email = email;
    }

    public String getEmail() 
    {
        return email;
    }
    public void setPhoneNumber(String phoneNumber) 
    {
        this.phoneNumber = phoneNumber;
    }

    public String getPhoneNumber() 
    {
        return phoneNumber;
    }
    public void setAvatar(String avatar) 
    {
        this.avatar = avatar;
    }

    public String getAvatar() 
    {
        return avatar;
    }
    public void setAddress(String address) 
    {
        this.address = address;
    }

    public String getAddress() 
    {
        return address;
    }
    public void setDeptId(Long deptId) 
    {
        this.deptId = deptId;
    }

    public Long getDeptId() 
    {
        return deptId;
    }
    public void setJobLevel(String jobLevel) 
    {
        this.jobLevel = jobLevel;
    }

    public String getJobLevel() 
    {
        return jobLevel;
    }
    public void setPostId(Long postId) 
    {
        this.postId = postId;
    }

    public Long getPostId() 
    {
        return postId;
    }
    public void setEngageForm(String engageForm) 
    {
        this.engageForm = engageForm;
    }

    public String getEngageForm() 
    {
        return engageForm;
    }
    public void setTiptopDegree(String tiptopDegree) 
    {
        this.tiptopDegree = tiptopDegree;
    }

    public String getTiptopDegree() 
    {
        return tiptopDegree;
    }
    public void setSpecialty(String specialty) 
    {
        this.specialty = specialty;
    }

    public String getSpecialty() 
    {
        return specialty;
    }
    public void setSchool(String school) 
    {
        this.school = school;
    }

    public String getSchool() 
    {
        return school;
    }
    public void setBeginDate(Date beginDate) 
    {
        this.beginDate = beginDate;
    }

    public Date getBeginDate() 
    {
        return beginDate;
    }
    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }
    public void setWorkCode(String workCode) 
    {
        this.workCode = workCode;
    }

    public String getWorkCode() 
    {
        return workCode;
    }
    public void setConversionDate(Date conversionDate) 
    {
        this.conversionDate = conversionDate;
    }

    public Date getConversionDate() 
    {
        return conversionDate;
    }
    public void setDimissionDate(Date dimissionDate) 
    {
        this.dimissionDate = dimissionDate;
    }

    public Date getDimissionDate() 
    {
        return dimissionDate;
    }
    public void setContractBeginDate(Date contractBeginDate) 
    {
        this.contractBeginDate = contractBeginDate;
    }

    public Date getContractBeginDate() 
    {
        return contractBeginDate;
    }
    public void setContractEndDate(Date contractEndDate) 
    {
        this.contractEndDate = contractEndDate;
    }

    public Date getContractEndDate() 
    {
        return contractEndDate;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("employeeId", getEmployeeId())
            .append("employeeName", getEmployeeName())
            .append("sex", getSex())
            .append("birthday", getBirthday())
            .append("idCard", getIdCard())
            .append("maritalStatus", getMaritalStatus())
            .append("nation", getNation())
            .append("nativePlace", getNativePlace())
            .append("politicsStatus", getPoliticsStatus())
            .append("email", getEmail())
            .append("phoneNumber", getPhoneNumber())
            .append("avatar", getAvatar())
            .append("address", getAddress())
            .append("deptId", getDeptId())
            .append("jobLevel", getJobLevel())
            .append("postId", getPostId())
            .append("engageForm", getEngageForm())
            .append("tiptopDegree", getTiptopDegree())
            .append("specialty", getSpecialty())
            .append("school", getSchool())
            .append("beginDate", getBeginDate())
            .append("status", getStatus())
            .append("workCode", getWorkCode())
            .append("conversionDate", getConversionDate())
            .append("dimissionDate", getDimissionDate())
            .append("contractBeginDate", getContractBeginDate())
            .append("contractEndDate", getContractEndDate())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .toString();
    }
}
